/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package funcenter.main;

import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;

public class Mascara extends PlainDocument {

    private int tamanhoMaximo;
    private String letrasPermitidas;

    public Mascara(int maxlen, boolean aceitaEspaco, boolean aceitaNumeros) {
        super();
        tamanhoMaximo = maxlen;
        letrasPermitidas = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        if(aceitaEspaco) letrasPermitidas += " ";
        if(aceitaNumeros) letrasPermitidas += "123456789";
    }
    
    public Mascara(int maxlen) {
        tamanhoMaximo = maxlen;
        letrasPermitidas = "";
    }
    
    @Override
    public void insertString(int offset, String str, AttributeSet attr)
            throws BadLocationException {
        
        str = str.toUpperCase();

        if(tamanhoMaximo <= 0) {// aceitara qualquer no. de caracteres
            super.insertString(offset, str.toUpperCase(), attr);
            return;
        }
        
        if(!letrasPermitidas.contains(str) && !letrasPermitidas.equals("")){
            return;
        }

        int ilen = (getLength() + str.length());
        if(ilen <= tamanhoMaximo) {// se o comprimento final for menor...
            super.insertString(offset, str, attr);
        }
    }

    public int getTamanhoMaximo() {
        return tamanhoMaximo;
    }

    public void setTamanhoMaximo(int tamanhoMaximo) {
        this.tamanhoMaximo = tamanhoMaximo;
    }
}
